{\rtf1\ansi\ansicpg1252\uc1\deff0
{\fonttbl{\f0\fmodern\fcharset0\fprq2 RobotoMono-SemiBold;}}
{\colortbl;\red0\green0\blue0;\red255\green255\blue255;\red128\green128\blue128;}
\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\f0\fs22\cf0
\pard\plain \tx0\tx360\tx720\tx1080\tx1440\tx1800\tx2160\tx2880\tx3600\tx4320\ltrch\loch {\f0\fs22\b0\i0 What does a@3 = b@5 even mean?}
\par\plain \f0\fs22\b0\i0
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 We can define arbitrary graphs of computation}
\par\plain {\f0\fs22\b0\i0 \tab But the graphs can always be reduced back to "x' = f(x)"}
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 A variable's type can change from state to state. The compiler can keep track of it for us.}
\par\plain \f0\fs22\b0\i0
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 Embedding the temporal logic in a procedural program guarantees that the evaluation order is a DAG, that it can run efficiently as a procedural program, and that humans can understand it better}
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 What does "a@(b==3) = 1" mean?}
\par\plain {\f0\fs22\b0\i0 Can we have arbitrary predicates as our @ rhs?}
\par\plain {\f0\fs22\b0\i0 \tab Wouldn't this just be the same as "if (b==3) a@ = 1;"}
\par\plain {\f0\fs22\b0\i0 \tab Then you start looking FRP-ish with the decimation of inputs and such.}
\par\plain \f0\fs22\b0\i0
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 methods that aren't callable unless predicate matches}
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 void doSomething @ state == ACTIVE () \{\}}
\par\plain \f0\fs22\b0\i0
\par\plain {\f0\fs22\b0\i0 @state == ACTIVE \{}
\par\plain {\f0\fs22\b0\i0 \tab doSomething()}
\par\plain {\f0\fs22\b0\i0 \}}}